package com.gomtel.smartdevice.moudle.db;


import com.gomtel.smartdevice.moudle.db.entity.AppConfigurationInfo;
import com.gomtel.smartdevice.moudle.db.entity.AtrialFibrillationInfo;
import com.gomtel.smartdevice.moudle.db.entity.BdDataInfo;
import com.gomtel.smartdevice.moudle.db.entity.CaloryDataInfo;
import com.gomtel.smartdevice.moudle.db.entity.EcgDataInfo;
import com.gomtel.smartdevice.moudle.db.entity.HeartRateDataInfo;
import com.gomtel.smartdevice.moudle.db.entity.LoginUserInfo;
import com.gomtel.smartdevice.moudle.db.entity.PathLengthContentInfo;
import com.gomtel.smartdevice.moudle.db.entity.PathLengthInfo;
import com.gomtel.smartdevice.moudle.db.entity.PulseConditionBean;
import com.gomtel.smartdevice.moudle.db.entity.SignsOfDataInfo;
import com.gomtel.smartdevice.moudle.db.entity.StepCountContentInfo;
import com.gomtel.smartdevice.moudle.db.entity.StepCountInfo;

import java.util.ArrayList;
import java.util.List;


/**
 * Created by Administrator on 2018/1/5.
 */

public interface DBHelper {

    //---------------------------条件查询---------------------------------------

    /**
     * 查询 LoginUserInfo数据
     *
     * @return
     */
    LoginUserInfo queryLoginUserInfo(String mUserName);

    /**
     * 查询 LoginUserInfo数据
     *
     * @return
     */
    LoginUserInfo queryLoginUserInfoToRecentlyTime(int recentlyTime);


    /**
     * 查询 AppConfigurationInfo数据
     *
     * @return
     */

    AppConfigurationInfo queryAppConfigurationInfo(String currentUser);

    /**
     * 查询 StepCountInfo数据
     *
     * @return
     */
    StepCountInfo queryCurrentDataStepInfo(String CurrentData);

    List<StepCountInfo> queryCurrentWeekStepInfo(String CurrentWeek);

    List<StepCountInfo> queryCurrentMonthStepInfo(String CurrentMonth);

    /**
     * 查询 StepCountContentInfo数据
     *
     * @return
     */
    List<StepCountContentInfo> queryStepCountContentInfo(String data);

    StepCountContentInfo queryStepCountCurrentTimeContentInfo(String currentTime);

    /**
     * 查询 PathLengthInfo数据
     *
     * @return
     */
    PathLengthInfo queryCurrentDataLengthInfo(String CurrentData);

    List<PathLengthInfo> queryCurrentWeekLengthInfo(String CurrentWeek);

    List<PathLengthInfo> queryCurrentMonthLengthInfo(String CurrentMonth);

    /**
     * 查询 PathLengthContentInfo数据
     *
     * @return
     */
    List<PathLengthContentInfo> queryPathLengthContentInfo(String data);

    PathLengthContentInfo queryPathLengthCurrentTimeContentInfo(String currentTime);

    /**
     * 查询 SignsOfDataInfo数据
     *
     * @return
     */

    SignsOfDataInfo querySignsOfDataInfo(String currentUser);

    /**
     * 查询 EcgDataInfo数据
     *
     * @return
     */

    List<EcgDataInfo> queryEcgDataInfo(String currentUser);

    /**
     * 查询 BdDataInfo数据
     *
     * @return
     */

    List<BdDataInfo> queryBdDataInfo(String currentUser);

    /**
     * 查询 CaloryDataInfo数据
     *
     * @return
     */

    CaloryDataInfo queryCaloryDataInfo(String day);

    /**
     * 查询 HeartRateDataInfo数据
     *
     * @return
     */

    HeartRateDataInfo queryHeartRateDataInfo(String day);


    List<HeartRateDataInfo> queryHeartRateDataList(String currentUser);

    /**
     * 查询 PulseConditionBean数据
     *
     * @return
     */
    List<PulseConditionBean> queryPulseConditionList(String currentUser);

    List<PulseConditionBean> queryPulseConditionSelectTimeList(String day);

    List<PulseConditionBean> queryPulseConditionAllList();

    /**
     * 查询 AtrialFibrillationInfo数据
     *
     * @return
     */
    List<AtrialFibrillationInfo> queryAtrialFibrillationInfo(String day);

    List<AtrialFibrillationInfo> queryAtrialFibrillationALLInfo(String currentUser);

    //---------------------------查询所有（无筛选条件）---------------------------

    /**
     * 查询所有 LoginUserInfo数据
     *
     * @return
     */
    List<LoginUserInfo> loadLoginUserInfo();


    /**
     * 查询所有的 AppConfigurationInfo数据
     *
     * @return
     */
    List<AppConfigurationInfo> loadAppConfigurationInfo();


    //---------------------------插入数据（更新数据）-----------------------------

    /**
     * 插入一条 LoginUserInfo数据
     *
     * @return
     */
    void insertLoginUserInfo(LoginUserInfo mLoginUserInfo);


    /**
     * 插入一条 AppConfigurationInfo数据
     *
     * @return
     */
    void insertAppConfigurationInfo(AppConfigurationInfo appConfigurationInfo);

    /**
     * 插入一条 StepCountInfo数据
     *
     * @return
     */
    void insertStepCountInfo(StepCountInfo stepCountInfo);

    /**
     * 插入一条 StepCountContentInfo数据
     *
     * @return
     */
    void insertStepCountContentInfo(StepCountContentInfo stepCountContentInfo);

    /**
     * 插入一条 PathLengthInfo数据
     *
     * @return
     */
    void insertPathLengthInfo(PathLengthInfo pathLengthInfo);

    /**
     * 插入一条 PathLengthContentInfo数据
     *
     * @return
     */
    void insertPathLengthContentInfo(PathLengthContentInfo pathLengthContentInfo);

    /**
     * 插入一条 SignsOfDataInfo数据
     *
     * @return
     */
    void insertSignsOfDataInfo(SignsOfDataInfo signsOfDataInfo);

    /**
     * 插入一条 EcgDataInfo数据
     *
     * @return
     */
    void insertEcgDataInfo(EcgDataInfo ecgDataInfo);

    /**
     * 插入一条 BdDataInfo数据
     *
     * @return
     */
    void insertBdDataInfo(BdDataInfo bdDataInfo);

    /**
     * 插入一条 CaloryDataInfo数据
     *
     * @return
     */
    void insertCaloryDataInfo(CaloryDataInfo caloryDataInfo);

    /**
     * 插入一条 HeartRateDataInfo数据
     *
     * @return
     */
    void insertHeartRateDataInfo(HeartRateDataInfo heartRateDataInfo);

    /**
     * 插入一条 PulseConditionBean数据
     *
     * @return
     */
    void insertPulseConditionBean(PulseConditionBean pulseConditionBean);

    /**
     * 插入一条 AtrialFibrillationInfo数据
     *
     * @return
     */
    void insertAtrialFibrillationInfo(AtrialFibrillationInfo atrialFibrillationInfo);


    //---------------------------删除数据(条件删除)-------------------------------

    /**
     * 删除一个 LoginUserInfo数据
     *
     * @return
     */
    void deleteLoginUserInfo(String mUserName);

    /**
     * 删除一个 AppConfigurationInfo数据
     *
     * @return
     */
    void deleteAppConfigurationInfo(String mUserName);


    //---------------------------修改数据()-------------------------------

    /**
     * 修改一条 IpAndPortInfo数据
     *
     * @return
     */
    void UpDataLoginUserInfo(LoginUserInfo mLoginUserInfo);


    /**
     * 更新 UpDataAppConfigurationInfo 数据
     *
     * @return
     */
    void UpDataAppConfigurationInfo(AppConfigurationInfo appConfigurationInfo);

    /**
     * 更新 StepCountInfo 数据
     *
     * @return
     */
    void UpDataStepCountInfo(StepCountInfo stepCountInfo);

    /**
     * 更新 StepCountContentInfo 数据
     *
     * @return
     */
    void UpDataStepCountContentInfo(StepCountContentInfo stepCountContentInfo);

    /**
     * 更新 PathLengthInfo 数据
     *
     * @return
     */
    void UpDataPathLengthInfo(PathLengthInfo pathLengthInfo);

    /**
     * 更新 PathLengthContentInfo 数据
     *
     * @return
     */
    void UpDataPathLengthContentInfo(PathLengthContentInfo pathLengthContentInfo);

    /**
     * 更新 SignsOfDataInfo 数据
     *
     * @return
     */
    void UpDataSignsOfDataInfo(SignsOfDataInfo signsOfDataInfo);

    /**
     * 更新 EcgDataInfo 数据
     *
     * @return
     */
    void UpDataEcgDataInfo(EcgDataInfo ecgDataInfo);

    /**
     * 更新 BdDataInfo 数据
     *
     * @return
     */
    void UpDataBdDataInfo(BdDataInfo bdDataInfo);

    /**
     * 更新 CaloryDataInfo 数据
     *
     * @return
     */
    void UpDataCaloryDataInfo(CaloryDataInfo caloryDataInfo);

    /**
     * 更新 HeartRateDataInfo 数据
     *
     * @return
     */
    void UpDataHeartRateDataInfo(HeartRateDataInfo heartRateDataInfo);


}
